package com.tdam2011.grupo03.entities;

import java.io.Serializable;
import java.util.ArrayList;
import android.net.Uri;

public class Contacto implements Serializable {

	private static final long serialVersionUID = 1L;
	private String nombre;
	private String alias;
	private String id;
	private ArrayList<ContactoTelefono> telefonos;
	private ArrayList<ContactoEmail> mails;
	private Uri uriFoto;

	public Contacto() {
		telefonos = new ArrayList<ContactoTelefono>(0);
		mails = new ArrayList<ContactoEmail>(0);
	}

	public void setName(String nombre) {
		this.nombre = nombre;
	}

	public void setAlias(String alias) {
		this.alias = alias;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return nombre;
	}

	public String getId() {
		return id;
	}

	public void addTelephoneNumber(String numero, String tipo) {
		ContactoTelefono telefono = new ContactoTelefono();
		telefono.setValue(numero);
		telefono.setType(tipo);
		telefonos.add(telefono);
	}

	public ArrayList<ContactoTelefono> getTelephoneNumbers() {
		return telefonos;
	}

	public void addEmail(String email, String emailType) {
		ContactoEmail emailNew = new ContactoEmail();
		emailNew.setValue(email);
		emailNew.setType(emailType);
		mails.add(emailNew);
	}

	public ArrayList<ContactoEmail> getEmails() {
		return mails;
	}

	public ArrayList<String> getListaEmails(boolean showType) {
		ArrayList<String> listaMails = new ArrayList<String>();
		if (showType) {
			for (ContactoEmail mail : mails) {
				listaMails.add(mail.toString());
			}
		} else {
			for (ContactoEmail mail : mails) {
				listaMails.add(mail.getValue());
			}
		}
		return listaMails;
	}

	public ArrayList<String> getListaTelefonos(boolean showType) {
		ArrayList<String> listaTelefonos = new ArrayList<String>();
		if (showType) {
			for (ContactoTelefono telefono : telefonos) {
				listaTelefonos.add(telefono.toString());
			}
		} else {
			for (ContactoTelefono telefono : telefonos) {
				listaTelefonos.add(telefono.getValue());
			}
		}

		return listaTelefonos;
	}

	public void setFoto(Uri dir) {
		uriFoto = dir;
	}

	public Uri getFoto() {
		return uriFoto;
	}

	public String getStringFoto() {
		return uriFoto.toString();
	}

	public String getAlias() {
		return alias;
	}

	@Override
	public String toString() {
		return id + " " + nombre;
	}
}
